/**
 * @file mod_exti_press.h
 * @author Linquan  
 * @brief 压力灭火器节点模块
 * @version 1.0
 * @date 2024-08-11
 * 
 * @copyright Copyright (c) 2024
 * 
 */
#ifndef EXTI_PRESS_H
#define EXTI_PRESS_H


/*===========================[Includes]======================================*/
#include <stdint.h>



#include "../circuit_config.h"
/*===========================[Defines]=======================================*/

/*===========================[Macros]========================================*/



/*===========================[Typedef]=======================================*/


/**
 * @brief 连接灭火器的地址及输出点
 * 
 */
typedef struct 
{
    circuit_node_addr_t    exti_ctr_addr;    // 灭火器控制设备的地址
    uint8_t                output_index;     // 该设备的输出点，如果控制设备可满足需求，则本项可忽略。 
}exth_active_node_t;


/**
 * @brief 压力式灭火器设备的 配置信息
 * 
 */
typedef struct 
{
    exth_active_node_t*      active_node_ptr; /** 灭火器动作点指针 */
    uint16_t                 active_node_num; /** 灭火器动作点数量 */
 
     
    uint16_t                delay_time  ; // 延时时间
    uint16_t*               sprink_time_arry_ptr;    // 喷洒时间

}CONFIG_INFO_TYPE(TYPE_EXTI_PRESS);


/**
 * @brief 压力式灭火器设备的 实时状态信息
 * 
 */
typedef struct 
{
   /** TODO: 这里凑合写一点数据种类,意思一下,后期在编写设备模块数据时 再确定 */
   uint8_t exti_status;                                                 // 灭火器状态
   uint8_t exti_spray_count;                                            // 灭火器延时计数器
  uint8_t (*exti_spray_func)(CONFIG_INFO_TYPE(TYPE_EXTI_PRESS)* sprank_info); // 灭火器 喷洒控制函数
   
}RT_DATA_TYPE(TYPE_EXTI_PRESS);





extern const node_operate_irf_t OP_FUNC_IRF(TYPE_EXTI_PRESS);










/*===========================[Global Prototypes]=============================*/

















#endif